package com.dsi.capa.bean;

import java.io.Serializable;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;

import com.dsi.capa.db.dao.TalonarioDAO;
import com.dsi.capa.db.model.Talonario;
import com.dsi.capa.db.util.DataSourceUtil;

public class TalonarioBean implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private Talonario talonario;
	
	private List<Talonario> talonarios;

	private TalonarioDAO talonarioDAO;
	
	private Integer page;
	
	private Integer pageSize;
	
	private List<Talonario> registros=null;
	
	private Integer maxRows=10;
	
	public TalonarioBean() {
		talonario = new Talonario();
		talonarioDAO = new TalonarioDAO(DataSourceUtil.getDataSource());
		page = new Integer(0);
		pageSize = new Integer(10);
		//talonarios = talonarioDAO.findBy(null,page.intValue()*pageSize.intValue(), pageSize);
		
	}
	
	public String validarTalonario()
	{
		String exito="talonarioExitoso";
		String fracaso="ingresoTalonario";
		Calendar fecha = new GregorianCalendar();
		
		return "";
	}

	
	//METODO PARA CARGAR UN SOLO PAGO
//	public String cargarTalonario()
//	{
//		talonario = talonarioDAO.buscarTalonario(talonario);
//		
//		return "actualizaTalonario";
//	}
	//METODO PARA CARGAR UN SOLO PAGO
//	public String cargarTalonarioElimina()
//	{
//		talonario = talonarioDAO.buscarTalonario(talonario);
//		
//		return "ingresarpag";
//	}
//	public String cargarTalonarioOtro()
//	{
//		talonario = talonarioDAO.buscarTalonario(talonario);
//		
//		return "ingresarTalonario";
//	}
	/**************************************************************************/
	

	public Talonario getTalonario() {
		return talonario;
	}

	public void setTalonario(Talonario talonario) {
		this.talonario = talonario;
	}

	public List<Talonario> getTalonarios() {
		return talonarios;
	}

	public void setTalonarios(List<Talonario> talonarios) {
		this.talonarios = talonarios;
	}


	
	
	
	public String save() {
		talonarioDAO.save(talonario);
		talonario = new Talonario();
		return null;
	}
	
	public String delete() {
		talonarioDAO.delete(talonario);
		talonario = new Talonario();
		return null;
	}
	
	public String update() {
		talonarioDAO.update(talonario);
		talonario = new Talonario();
		return null;
	}
	
//	public String obtenerMontoCuota(){
//		String result=talonarioDAO.obtenerMontoCuota(talonario);
//		return result;
//	}
//	
	/*--------------------------------------------------*/
	/*MANEJA LA NAVEGACION Y FILTROS DE BUSQUEDA*/
	
	public List<Talonario> getRegistros() {
		if(registros == null) {
			registros = talonarioDAO.findBy(talonario.getCarnet()
				
					, page.intValue()*maxRows.intValue(), maxRows);
		}
		return registros;
	}
	
	public void buscar() {
		registros = null;
		page = new Integer(0);
		talonarios=null;
		talonarios=getRegistros();
		
		
	}
	/*public String nextPage() {
		page = page.intValue() + 1;
		talonarios = talonarioDAO.findAll(page.intValue()*pageSize.intValue(), pageSize);
		return null;
	}
	
	public String prevPage() {
		page = page.intValue() -1 ;
		if(page < 0) {
			page = 0;
		}
		talonarios = talonarioDAO.findAll(page.intValue()*pageSize.intValue(), pageSize);
		return null;
	}
	*/
	public String nextPage() {
		registros = null;
		page = new Integer(page.intValue() + 1);
		return "consulta";
	}
	
	public String prevPage() {
		registros = null;
		page = new Integer(page.intValue() - 1);
		if(page.intValue() < 0 ) {
			page = new Integer(0);
		}
		return "consulta";
	}

	public void setRegistros(List<Talonario> registros) {
		this.registros = registros;
	}

	public Integer getPage() {
		return page;
	}

	public void setPage(Integer page) {
		this.page = page;
	}

	public Integer getMaxRows() {
		return maxRows;
	}

	public void setMaxRows(Integer maxRows) {
		this.maxRows = maxRows;
	}
	
	
	
	
	/* --------------------------------------------*/

}
